\section{Future Work}
\label{sec:future_work}

\subsection{Churn and replication}

Peers should of course be able to join and leave the network whenever they wish. This presents a couple of problems: an OP is the peer closest to the OpID, which allows a group of players to easily locate the OP. However, when a peer joins the network he may become the new closest peer to some OpID, and when an OP leaves the network or fails, another peer becomes the new closest peer. In both cases the new closest peers would be OPs, but in its current implementation, the system does not replicate the state to new OPs.

A solution would be to continuously replicate the the state of an OP to the k closest peers in the pastry ring (that is the peers of the leaf-set in Pastry terminology).

\subsection{P2P game framework}

Currently our system only supports one game, but by extracting out the Ludo-specific parts, the system could easily be transformed into a framework supporting several games with the limitation that the whole game state is public, eg. chess and backgammon.

A nice feature in such a framework would be to enable players to send the game specific parts to each other. This kind of remote code execution does of course have a lot of security issues, but this could be solved by using sandboxing.

\subsection{Private and concealed state}
If we wish to support games with private and concealed public state,
it would not be enough just to remove part of the game state from the
players and still keep the entire state at the OPs: an adversary would
just has to bribe a single OP to get the game state. Therefore using all-knowing OPs for games with these types of state does not seem usable.

In Wierzbicki, the authors attempts to solve how to keep a state private in a Scrabble-game \cite{Wierzbicki}. A player has to prove how he obtained a certain letter, the moment he reveals it to the other players at some point in the game. The article also looks at issues with concealed public state such as the letter set and attempts to solve it by distributing letter parts among disinterested players. Especially the last would seem appropriate for our system, since the OPs are comparable to disinterested players.

\subsection{Real time games}

If we were to use our system for real time games, we would have to give much more thought to event ordering, which is very easy in a turn based game like Ludo. But the OPs might come in handy for this purpose, since the majority of the OPs will not lie about when they receive an event from a player.

